package com.um.jdy.common.activity.service;

import com.um.jdy.common.activity.entity.vo.CouponsUserDetailVO;
import com.um.jdy.common.activity.entity.vo.CouponsVO;
import com.um.jdy.common.activity.entity.vo.StationAvailableCouponsVO;
import com.um.springboot.starter.orm.service.BaseEntityService;
import com.um.jdy.common.activity.entity.po.CouponsUser;

import java.util.List;
import java.util.Map;

/**
 * 服务接口：优惠券用户关联表
 */
public interface CouponsUserService extends BaseEntityService<CouponsUser> {

    /**
     * 查询站场可用优惠券列表
     * @param deviceStationId
     * @param deviceType 设备类型
     * @param memberUserId
     * @return
     */
    List<StationAvailableCouponsVO> getStationAvailableList(String deviceStationId,String deviceType, String memberUserId);

    /**
     * 查询充电可用优惠券列表
     * @param deviceStationId
     * @param deviceType 设备类型
     * @param memberUserId
     * @return
     */
    List<CouponsVO> getChargingAvailableList(String deviceStationId,String deviceType, String memberUserId, Number amount);

    /**
     * 查询充电可用且未领取的优惠券列表
     * @param deviceStationId
     * @param deviceType 设备类型
     * @param memberUserId
     * @return
     */
    List<CouponsVO> getChargingAvailableNotRedeemedList(String deviceStationId,String deviceType, String memberUserId, Number amount);

    /**
     * 查询用户优惠券
     * @param activityCouponsUserId
     * @return
     */
    CouponsUserDetailVO getUserCoupons(String activityCouponsUserId);

    /**
     * 查询用户优惠券
     * @param activityCouponsId
     * @param userId
     * @return
     */
    CouponsUserDetailVO getUserCoupons(String activityCouponsId, String userId);

    /**
     * 退回优惠券已使用
     * @param activityCouponsUserId
     * @return
     */
    boolean returnCouponsUse(String activityCouponsUserId);

    /**
     * 保存优惠券已使用
     * @param activityCouponsUserId
     * @return
     */
    boolean saveCouponsUse(String activityCouponsUserId);

}
